package offer.zixing.chapter03;

/**
 * 最多删除一个字符得到回文
 *
 * 给定一个字符串，请判断如果最多从字符串中删除一个字符能不能得到一个回文字符串。
 * 例如，如果输入字符串"abca"，由于删除字符'b'或者'c'就能得到一个回文字符串，因此输出为true。
 */
public class Test019_1 {
    public static void main(String[] args) {
        System.out.println(validPalindrome("aguokepatgbnvfqmgmlcupuufxoohdfpgjdmysgvhmvffcnqxjjxqncffvmhvgsymdjgpfdhooxfuupuculmgmqfvnbgtapekouga"));
    }

    public static boolean validPalindrome(String s) {
        int left = 0;
        int right = s.length() -1;
        int count = 0;
        while(left < right){
            char ch1 = s.charAt(left);
            char ch2 = s.charAt(right);
            if(ch1 == ch2){
                left++;
                right--;
                if (left == 19){
                    System.out.println("sssss");
                }
            } else if(count < 1) {
                if(s.charAt(left + 1) == ch2 || ch1 == s.charAt(right - 1) ){
                    count++;
                    left++;
                } else if (ch1 == s.charAt(right - 1)) {
                    count++;
                    right--;
                }
//                } else {
//                    if (right + left == s.length()){
//                        return true;
//                    } else {
//                        return false;
//                    }
//                }
            } else {
                return false;
            }
        }
        return true;
    }
}
